home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / util / cdity / ModeProSrc.lha / Prefs / MPP.h < prev    next >
C/C++ Source or Header  |  1999-02-07  |  12KB  |  338 lines

  1. #include "/ModePro.h"
  2. #define CATCOMP_NUMBERS
  3. #include "MPPLocale.h"
  4.  
  5. #include <devices/inputevent.h>
  6.  
  7. #define LIST_AREA   0
  8. #define PROM_AREA   1
  9. #define OPT_AREA    2
  10. #define TD_AREA     3
  11. #define FONT_AREA   4
  12. #define SHPN_AREA   5
  13. #define PUB_AREA    6
  14. #define HOTK_AREA   7
  15. #define BACKDROP_AREA 8
  16. #define PGAD_AREA   9
  17.  
  18. #define TOTAL_AREAS 10
  19.  
  20. extern struct IBox GadgetArea[];
  21.  
  22. #define MAX_TYPE        3
  23. #define MAX_MODE        3
  24. #define MAX_CENTERFLAG  3
  25. #define MAX_FONT        3
  26.  
  27. #define MPP_IDCMP (IDCMP_REFRESHWINDOW | IDCMP_MENUPICK | INTEGERIDCMP | BUTTONIDCMP | CYCLEIDCMP | LISTVIEWIDCMP | IDCMP_VANILLAKEY | IDCMP_RAWKEY)
  28. #define MPP_SLEEP_IDCMP (IDCMP_REFRESHWINDOW)
  29.  
  30. #define ITEM_NEW_NAME   0
  31. #define ITEM_NO_NAME    1
  32. #define OK              2
  33. #define LOAD_MP_PREFS   3
  34. #define SAVE_MP_PREFS   4
  35. #define LOAD_ERROR          5
  36. #define SAVE_ERROR          6
  37. #define SELECT_SCREEN_FONT  7
  38. #define SELECT_DEF_FOR      8
  39. #define UNKNOWN_PROMOTION_MODE 9
  40. #define MT_MILLION      10
  41.  
  42.  
  43. /** Misc Nodes **/
  44.  
  45. struct PenNode
  46. {
  47.   struct Node Pen_Node;
  48.   UWORD PenNumber;
  49.   ULONG Value;
  50. };
  51.  
  52. struct ModeNode
  53. {
  54.   struct Node mn_Node;
  55.   ULONG  mn_DisplayID;
  56. };
  57.  
  58.  
  59. /*  Menu IDs  */
  60. /* Project Menu */
  61. #define M_OPEN        FULLMENUNUM(0,0,NOSUB)
  62. #define M_SAVE        FULLMENUNUM(0,1,NOSUB)
  63. #define M_SAVEAS      FULLMENUNUM(0,1,NOSUB)
  64. /* Bar */
  65. #define M_IMPORT      FULLMENUNUM(0,3,NOSUB)
  66. /* Bar */ 
  67. #define M_ABOUT       FULLMENUNUM(0,5,NOSUB)
  68. /* Bar */
  69. #define M_HIDE        FULLMENUNUM(0,7,NOSUB)
  70. #define M_QUIT        FULLMENUNUM(0,8,NOSUB)
  71.  
  72. /* Edit Menu */
  73. #define M_LASTSAVED         FULLMENUNUM(1,0,NOSUB)
  74. #define M_RESTORE           FULLMENUNUM(1,1,NOSUB)
  75. /* Bar */
  76. #define M_COPY_TO           FULLMENUNUM(1,3,NOSUB)
  77. #define M_COPY_TO_SCR       FULLMENUNUM(1,3,0)
  78. #define M_COPY_TO_PRG       FULLMENUNUM(1,3,1)
  79. #define M_COPY_TO_SMODE     FULLMENUNUM(1,3,2)
  80. #define M_COPY_TO_PUB       FULLMENUNUM(1,3,3)
  81. /* Bar */
  82. #define M_SORT              FULLMENUNUM(1,5,NOSUB)
  83.  
  84. /* Settings Menu */
  85. #define M_ENABLED           FULLMENUNUM(2,0,NOSUB)
  86. #define M_ENABLENL          FULLMENUNUM(2,1,NOSUB)
  87. /* BAR */
  88. #define M_SET_UNKNOWN       FULLMENUNUM(2,3,NOSUB)
  89. #define M_SET_UNKNOWN_PUB   FULLMENUNUM(2,4,NOSUB)
  90. #define M_SET_CENTER        FULLMENUNUM(2,5,NOSUB)
  91. #define M_SET_CENTER_H      FULLMENUNUM(2,5,0)
  92. #define M_SET_CENTER_V      FULLMENUNUM(2,5,1)
  93.  
  94. /*** GADGETS ***/
  95. #define GetGadString( g )      ((( struct StringInfo * )g->SpecialInfo )->Buffer  )
  96. #define GetGadNumber( g )      ((( struct StringInfo * )g->SpecialInfo )->LongInt )
  97. #define GD_TYPE                                0
  98. #define GD_NEW                                 1
  99. #define GD_LIST                                2
  100. #define GD_NAME                                3
  101. #define GD_REMOVE                              4
  102. #define GD_LOOK3D                              5
  103. #define GD_MODESEL                             6
  104. #define GD_SELMODE                             7
  105. #define GD_AUTOSCROLL                          8
  106. #define GD_SCREENMODE                          9
  107. #define GD_WIDTH                               10
  108. #define GD_HEIGHT                              11
  109. #define GD_OVERSCAN                            12
  110. #define GD_MOVE                                13
  111. #define GD_RESETPENS                           14
  112. #define GD_PENLIST                             15
  113. #define GD_PENVAL                              16
  114. #define GD_INTERLEAVE                          17
  115. #define GD_PICKFONT                            18
  116. #define GD_CENTER                              19
  117. #define GD_SFONT                               20
  118. #define GD_FASPECT                             21
  119. #define GD_DODEPTH                             22
  120. #define GD_DEPTH                               23
  121. #define GD_SHAREPENS                           24
  122. #define GD_LOCKEDPENS                          25
  123. #define GD_PUBOPT                              26
  124. #define GD_PUBNAME                             27
  125. #define GD_HOTKEYOPT                           28
  126. #define GD_HOTKEYSTR                           29
  127. #define GD_SAVE                                30
  128. #define GD_USE                                 31
  129. #define GD_CANCEL                              32
  130. #define GD_SELECT_NAME                         33
  131. #define GD_PALETTE                             34
  132. #define GD_EDITPALETTE                         35
  133. #define GD_FORCE_PLANAR                        36
  134. #define GD_BLANK_BORDER                        37
  135. #define GD_BEHIND                              38
  136. #define GD_3D_DEFAULT                          39
  137. #define GD_FE_SAVEUSE                          40
  138. #define GD_FE_USEDELETE                        41
  139. #define GD_FE_NEVER                            42
  140. #define GD_FE_CANCEL                           43
  141. #define GD_FE_ENTRY_NAME                       44
  142. #define GD_FE_ENTRY_TYPE                       45
  143. #define GD_BACKDROPOPT                         46
  144. #define GD_BACKDROPFILENAME                    47
  145. #define GD_BACKDROPPICK                        48
  146. #define GD_BACKDROPCENTER                      49
  147.  
  148. #define GD_BACKDROPCOLOR                       50
  149. #define GD_DOOVERSCAN                          51
  150. #define GD_DODIMENSIONS                        52
  151.  
  152. #define GD_FE_SCREENNAME                       53
  153. #define GD_FE_SCREENNAME_DISP                  54
  154. #define GD_FE_PROGRAMNAME                      55
  155. #define GD_FE_PROGRAMNAME_DISP                 56
  156. #define GD_FE_SCREENMODE                       57
  157. #define GD_FE_SCREENMODE_DISP                  58
  158. #define GD_FE_PUBLICSCREEN                     59
  159.  
  160. #define GADGETS                                60
  161.  
  162. struct TextArea
  163. {
  164.   WORD LeftEdge,  TopEdge,
  165.        RightEdge, BottomEdge,
  166.        Width,     Height,
  167.        Baseline;  
  168.   LONG PrevWidth;
  169. };
  170.  
  171. struct LetterGad
  172. {
  173.   STRPTR String;
  174.   ULONG GadID;
  175. };
  176.  
  177. struct LG_RetVal
  178. {
  179.   UWORD GadID;
  180.   UWORD Char;
  181. };
  182.  
  183. /*** PROTOTYPES ***/
  184. BOOL GetArgs(int argc, char **argv);
  185. void CleanupArgs(void);
  186. void ProcessPrefsMessages(void);
  187.  
  188. /**** DefaultNode Funcs ****/
  189. struct  DefaultNode *GetActiveNode(void);
  190. LONG CountNodes(struct List *List);
  191. BOOL    SelectName(struct DefaultNode *DN);
  192.  
  193. /**** Interface ()'s ****/
  194. STRPTR  GetString( LONG stringNum);
  195. void    InitStrings(void);
  196. BOOL    ShowGUI(void);
  197. void    HideGUI(void);
  198. void    UpdateGadgets(void);
  199. void    SetDispGadgets(struct DefaultNode *n);
  200. void    SetFontGadgets(struct DefaultNode *n);
  201. void    SetSharedGadgets(struct DefaultNode *n);
  202. void    SetDepthGadgets(struct DefaultNode *n);
  203. void    SetPublicGadgets(struct DefaultNode *n);
  204. void    SetHotKeyGadgets(struct DefaultNode *n);
  205. void    SetOptionGadgets(struct DefaultNode *n);
  206. void    Set3DGadgets(struct DefaultNode *n);
  207. void    SetPaletteGadgets(struct DefaultNode *n);
  208. void SetBackdropGadgets(struct DefaultNode *n );
  209.  
  210.  
  211. void    Process_Keys(struct IntuiMessage *IMsg);
  212. void    process_gadgetups(struct IntuiMessage *imsg);
  213. void    process_mousemoves(struct IntuiMessage *imsg);
  214. void    process_menus(struct IntuiMessage *imsg);
  215. void    ProcessInput(void);
  216. void    SetupPenNodes(void);
  217. void    SetPenValues(WORD *pens);
  218. ULONG   __saveds __asm ExcludeHook(register __a0 struct Hook *hook,
  219.                                    register __a1 ULONG *Msg,
  220.                                    register __a2 struct SGWork *SW);
  221. void FindMaxPenNameSize(struct TextAttr *TA);
  222. ULONG __saveds __asm PensLVFunc(register __a0 struct Hook *Hook,
  223.                                 register __a1 struct LVDrawMsg *Dm,
  224.                                 register __a2 struct PenNode *PN);
  225.  
  226. ULONG __saveds __asm PromotionLVFunc(register __a0 struct Hook *Hook,
  227.                                 register __a1 struct LVDrawMsg *Dm,
  228.                                 register __a2 struct DefaultNode *DN);
  229.  
  230. // mppgadgets.c
  231. void WriteColorDisp(struct DefaultNode *);
  232. void WritePenNameDisp(STRPTR Name);
  233. void WriteFontDisp(struct DefaultNode *DN);                                
  234. void RefreshGUI(void);
  235. void SetupTextArea(struct TextArea *TA);
  236.  
  237. /**** Files ****/
  238. LONG    SendDaemonMsg(ULONG Command, ULONG Code, APTR Data);
  239. BOOL    PrefLoadFile(STRPTR FileName);
  240. BOOL    PrefSaveFile(STRPTR FileName);
  241. BOOL    SaveFile(struct List *List, UBYTE *filename);
  242.  
  243.  
  244. /**** Requesters ****/
  245. BOOL    SelectFile(UBYTE *title,UBYTE save);
  246. ULONG   SelectScreenMode(struct Window *Win, struct DefaultNode *n, BOOL DoOrig);
  247. BOOL    PickFont(struct Window *, struct TTextAttr *TA);
  248. void PaletteReq(struct DefaultNode *);
  249.  
  250. STRPTR GetModeName(ULONG DisplayID);
  251. ULONG GetMonitorName(ULONG DisplayID, STRPTR Buffer, ULONG BufferLen);
  252.  
  253. struct Screen *GetScreen(void);
  254. void ReleaseScreen(struct Screen *S);
  255.  
  256.  
  257.  
  258.  
  259. /**** Clean Up ()'s ****/
  260. void    CleanUp(void);
  261.  
  262.  
  263. void GD_Type(LONG Code);
  264. struct DefaultNode *GD_New(void);
  265. void GD_Save(void);
  266. void GD_Use(void);
  267. void GD_Cancel(void);
  268. void GD_List(LONG Item, BOOL Keyed,struct IntuiMessage *);
  269. void GD_SelectName(struct DefaultNode *N);
  270. void GD_ModeSel(struct DefaultNode *N, LONG Mode, BOOL Keyed);
  271. void GD_SelMode(struct DefaultNode *N);
  272. void GD_Overscan(struct DefaultNode *N, LONG Value, BOOL Keyed);
  273. void GD_Remove(struct DefaultNode *N);
  274. void GD_PenList(struct DefaultNode *N, LONG Item, BOOL Keyed);
  275. void GD_ResetPens(struct DefaultNode *N);
  276. void GD_PickFont(struct DefaultNode *N);
  277. void GD_Interleave(struct DefaultNode *N, BOOL Set, BOOL Keyed);
  278. void GD_Look3D(struct DefaultNode *N, BOOL Set, BOOL Keyed);
  279. void GD_AutoScroll(struct DefaultNode *N, BOOL Flag, BOOL Keyed);
  280. void GD_PenVal(struct DefaultNode *N, BOOL Flag);
  281. void GD_ResetPens(struct DefaultNode *N);
  282. void GD_PickFont(struct DefaultNode *N);
  283. void GD_Center(struct DefaultNode *N, LONG Num, BOOL Keyed);
  284. void GD_FAspect(struct DefaultNode *N, BOOL Flag, BOOL Keyed);
  285. void GD_SFont(struct DefaultNode *N, LONG Code, BOOL Keyed);
  286. void GD_PubOpt(struct DefaultNode *N, BOOL Flag, BOOL Keyed);
  287. void GD_DoDepth(struct DefaultNode *N, BOOL Set, BOOL Keyed);
  288. void GD_SharePens(struct DefaultNode *N, BOOL Flag, BOOL Keyed);
  289. void GD_HotKeyOpt(struct DefaultNode *N, BOOL Flag, BOOL Keyed);
  290. void GD_Palette(struct DefaultNode *N, BOOL Set, BOOL Keyed);
  291. void GD_EditPalette(struct DefaultNode *N);
  292. void GD_Move(LONG Num, BOOL Keyed);
  293. void GD_Depth(struct DefaultNode *N, LONG Depth, BOOL Keyed);
  294. void GD_Force_Planar(struct DefaultNode *N, BOOL Flag, BOOL Keyed);
  295. void GD_Behind(struct DefaultNode *N, BOOL Flag, BOOL Keyed);
  296. void GD_Blank_Border(struct DefaultNode *N, BOOL Flag, BOOL Keyed);
  297. void GD_3D_Default(struct DefaultNode *N, BOOL Flag, BOOL Keyed);
  298. void GD_FE_SaveUse(void);
  299. void GD_FE_UseDelete(void);
  300. void GD_FE_Never(void);
  301. void GD_FE_Cancel(void);
  302. void GD_BackdropOpt(struct DefaultNode *N, LONG Flag, BOOL Keyed);
  303. void GD_BackdropPick(struct DefaultNode *N);
  304. void GD_BackdropCenter(struct DefaultNode *N, BOOL Flag, BOOL Keyed);
  305. void GD_BackdropColor(struct DefaultNode *N, BOOL Keyed);
  306.  
  307. struct LG_RetVal MatchKey2Gad(ULONG Key, struct LetterGad *LG);
  308.  
  309. LONG   SelectReq(struct List *List, STRPTR WinTitle);
  310. struct Node  *AllocNameNode(STRPTR Name);
  311. void   FreeNameNodes(struct List *List);
  312.  
  313. ULONG SelectMonitor(struct DefaultNode *DN);
  314. ULONG   __saveds __asm PenValFunc(register __a0 struct Hook *hook,
  315.                                    register __a1 ULONG *Msg,
  316.                                    register __a2 struct SGWork *SW);
  317. ULONG   __saveds __asm WinBackFillHook(register __a0 struct Hook *Hook,
  318.                                    register __a1 struct BFBounds *BF,
  319.                                    register __a2 struct RastPort *RP);
  320.                                    
  321.  
  322. void RefreshMenus(void);
  323. BOOL RemakeGads(void);                                   
  324. struct LG_Control *MakeMPPGadgets(struct Window *Window, APTR VisualInfo, struct TextAttr *TA);
  325. void FreeMPPGadgets(void);
  326.  
  327. BOOL GadgetInit(void);
  328. void GadgetCleanup(void);
  329.  
  330. BOOL LoadPalette(struct DefaultNode *DN);
  331. BOOL SaveCMAP(STRPTR Filename, struct RGB *CReg, ULONG Colors);
  332. BOOL SelectBackdropFile(UBYTE *title,struct Window *Parent,STRPTR OldFile);
  333.  
  334. void CheckMenuItem(ULONG MenuItem, BOOL Checked);
  335. void FixScreenModeNames(void);
  336. void ReplaceGStr(STRPTR *A, ULONG GID);
  337.  
  338. BOOL ImportFile(STRPTR FileName);